from django.db import models
from django.utils import timezone

# Create your models here.


class LivePlatformInfoModel(models.Model):
    """
    直播平台信息表格
    用来存储开通本游戏的直播平台
    """
    name = models.CharField(max_length=20, unique=True, null=False, blank=False, verbose_name="直播平台名称",
                            help_text="直播平台名称")
    desc = models.TextField(null=True, blank=True, verbose_name="直播平台介绍", help_text="直播平台介绍")
    creator = models.IntegerField(null=True, blank=True, verbose_name="创建员", help_text="创建员")
    is_access = models.BooleanField(default=False, null=False, blank=False, verbose_name="是否接入", help_text="是否接入")
    checker = models.IntegerField(null=True, blank=True, verbose_name="审核员", help_text="审核员")
    expand_json = models.JSONField(null=True, blank=True, verbose_name="扩展字段",
                                   help_text="扩展字段：可能有其他新业务，现在预留一个存储json数据的字段")
    created_time = models.CharField(max_length=25, null=True, blank=True, verbose_name="创建时间", help_text="创建时间")

    class Meta:
        verbose_name = '直播平台信息表格'
        verbose_name_plural = verbose_name

    def __str__(self):
        return str(self.id)


class PkModeInfoModel(models.Model):
    """
    竞赛模式信息表格
    """
    name = models.CharField(max_length=30, unique=True, null=False, blank=False, verbose_name="比赛模式名称",
                            help_text="比赛模式名称")
    rule = models.TextField(null=False, blank=False, verbose_name="比赛模式规则", help_text="比赛模式规则")
    creator = models.IntegerField(null=True, blank=True, verbose_name="创建员", help_text="创建员")
    is_access = models.BooleanField(default=False, null=False, blank=False, verbose_name="是否审核", help_text="是否审核")
    checker = models.IntegerField(null=True, blank=True, verbose_name="审核员", help_text="审核员")
    expand_json = models.JSONField(null=True, blank=True, verbose_name="扩展字段",
                                   help_text="扩展字段：可能有其他新业务，现在预留一个存储json数据的字段")
    created_time = models.CharField(max_length=25, null=True, blank=True, verbose_name="创建时间", help_text="创建时间")

    class Meta:
        verbose_name = '竞赛模式信息表格'
        verbose_name_plural = verbose_name

    def __str__(self):
        return str(self.id)


class LiveRoomInfoModel(models.Model):
    """
    直播间信息表格——需要主播创建房间信息，才能使用
    """
    live_room_number = models.CharField(max_length=30, unique=True, null=False, blank=False, verbose_name="直播间号码",
                                        help_text="直播间号码")
    live_platform = models.IntegerField(null=False, blank=False, verbose_name="直播平台信息", help_text="直播平台信息")
    streamer = models.IntegerField(null=False, blank=False, verbose_name="主播信息", help_text="主播信息")

    subject = models.IntegerField(null=False, blank=False, verbose_name="学科信息", help_text="学科信息")
    label = models.IntegerField(null=False, blank=False, verbose_name="标签信息", help_text="标签信息")
    pk_mode = models.IntegerField(null=False, blank=False, verbose_name="PK模式信息", help_text="PK模式信息")
    current_question_no = models.IntegerField(default=0, null=False, blank=False, verbose_name="当前题号",
                                              help_text="当前题号")
    status = models.BooleanField(default=True, null=False, blank=False, verbose_name="直播间状态",
                                 help_text="直播间状态：正常、终结")
    expand_json = models.JSONField(null=True, blank=True, verbose_name="扩展字段",
                                   help_text="扩展字段：可能有其他新业务，现在预留一个存储json数据的字段")
    created_time = models.CharField(max_length=25, null=True, blank=True, verbose_name="创建时间", help_text="创建时间")

    class Meta:
        verbose_name = '直播间信息表格'
        verbose_name_plural = verbose_name

    def __str__(self):
        return self.live_room_number


class PkDetailInfoModel(models.Model):
    """
    竞赛详情信息表格
    竞赛详情，包含试题、玩家答题情况
    试题id,
    直播间id、玩家id、答题消耗时间、是否正确、
    """
    live_room_number = models.CharField(max_length=30, null=False, blank=False, verbose_name="直播间号码",
                                        help_text="直播间号码")
    streamer = models.IntegerField(null=False, blank=False, verbose_name="主播信息", help_text="主播信息")
    player = models.IntegerField(null=False, blank=False, verbose_name="玩家信息", help_text="玩家信息")
    question = models.IntegerField(null=False, blank=False, verbose_name="问题信息", help_text="问题信息")
    rank = models.IntegerField(null=False, blank=False, verbose_name="玩家本题排名", help_text="玩家本题排名")
    use_time = models.FloatField(null=False, blank=False, verbose_name="答题用时", help_text="答题用时")
    is_right = models.BooleanField(null=False, blank=False, verbose_name="是否正确", help_text="是否正确")

    class Meta:
        verbose_name = '竞赛详情信息表格'
        verbose_name_plural = verbose_name

    def __str__(self):
        return str(self.id)
